package cgs_worksheet

import (
	"go.mongodb.org/mongo-driver/bson"
	"time"
)

// 过滤参数
type FilterSortInput struct {
	// 字段
	Field		string		`json:"field"`
	// 字段类型
	DataType 	DataType	`json:"dataType"`
	// 拼接方式
	SpliceType	SpliceType	`json:"spliceType"`
	// 筛选类型
	FilterType 	FilterType	`json:"filterType"`
	// 值
	Values		[]string	`json:"values"`
	// 值？
	Value		interface{}		`json:"value,omitempty"`
	// 日期范围
	DateRange	DateRange	`json:"dateRange,omitempty"`
	// 日期范围类型
	DateRangeType	DateRangeType	`json:"dateRangeType,omitempty"`
	// 最小值
	MinValue	string		`json:"minValue,omitempty"`
	// 最大值
	MaxValue	string		`json:"maxValue,omitempty"`
	// 是否升序
	IsAsc		bool		`json:"isAsc,omitempty"`
	// 筛选动态值
	DynamicSource	[]interface{}	`json:"dynamicSource,omitempty"`
}

func (f *FilterSortInput) GenerateFilterParam(wsInfo *WorksheetInfo) bson.D {

	filter := f.FilterType.GetFilterExpression(f, wsInfo)

	return filter
}

func (f *FilterSortInput) GetDateRange() (begin, end time.Time) {
	return f.DateRange.GetDate(f)
}
